In various kinds of communication systems, it has always been the aim to fully utilize the capabilities of every connection in order to increase the amount of information that can be carried without additional increase in equipment. Thus, even in analog systems, such as telephones, the multiplexing concept was developed so that multiple analog signals could be placed onto a single wire. By doing this, more than one telephone connection or other information connection could be made at the same time. While this is especially used in wired connections, the same technique applies to other types of connections such as radio links, optical links, etc.
In high speed digital equipment, the same goals remain. Especially in high speed processors and other computer components, it is desirable to completely utilize bandwidth while decreasing any latency in the data stream. Of particular interest are new multi-node systems which utilize a series of processors or nodes which generate or receive data and are connected through a network of interconnects. These interconnects may be routers, repeaters or switches and are used to transmit data from one node to the other. Examples of such multi-node systems include the Next Generation I/O (NGIO) system of Intel and the InfiniBand™ system. Such systems often use a virtual interface architecture to support data transfer between two memory regions, typically on different systems over one or more channels.
In systems of this type the data is typically carried in units called packets which are transferred between nodes. However, packets can also be divided into smaller units called flits (flow interface transfer units). Packets are sent among various channels. Among some channels such as processor buses, the packets are the smallest units which can be present. Among other channels of a more local nature, it is possible to transfer individual flits along the channels. However, it has been difficult to arrange data in such a fashion that it can be transferred easily from one resource sharing paradigm to another, that is between rules governing local channels as opposed to the rules governing the processor bus, without problems of wasted bandwidth or extra latency.
Attempts have been made to move more than a single data channel through an individual physical connection. A physical connection is typically a wire connection, but is also equally applicable to a radio link, optical link or other data connection. The concept of using a single connection for more than one channel is a well known concept and has been used for years in telephones and other analog systems where it is known as multiplexing. However, in digital systems this full use of resources is even more important in order to increase the speed of the device. Accordingly, it is important to fully utilize existing bandwidth and to avoid any increase in latency of the data.